This application relates generally to cryptographic keys. More specifically this application relates to methods and systems for generating and managing cryptographic keys.
The use of cryptography has been escalating. While there has always been a need to maintain information securely, particularly when information is moved to different places or among different people, this need has been increasing as a consequence of increased electronic interaction. The security of email, virtual private networks (“VPNs”), electronic commerce, credit-card transactions, medical information, and national-defense and military secrets, to identify just a few types of information, currently relies on the encryption of information to provide confidentiality, authentication, and access control. The management of encrypted information depends critically on the management of the cryptographic keys used to encrypt and decrypt the information. The escalating use of cryptography by a wide spectrum of institutions has resulted in a concomitant increase is the need to manage and protect large numbers of cryptographic keys.
Cryptographic keys are vulnerable to a variety of different types of attacks, some of which may be carried out in a sophisticated fashion by a savvy hacker, and others of which may be carried out in a remarkably simple way by disgruntled employees. For example, keys may be compromised by simply duplicating a key, with an attacker using the copied key to access and steal information; in many instances, this type of attack may be perpetuated with the legitimate party never knowing that the information has been compromised. An attacker may substitute a key by inserting a fake key that provides the attacker with control over information, and removes control over the information from the legitimate party. An attacker may also sometimes just destroy or corrupt a key; this type of attack is more common for widely used services and is used to undermine confidence in the system by forcing the system to suspend services while the integrity of the information is restored.
Current systems for generating and managing cryptographic keys often have a significant manual component. For example, in one system, key generation may require the involvement of multiple key custodians so that no single person has access to the keys. Each custodian generates a portion of the key, interacting through a keyboard with a host security module of the type well known in the art. The key portion is transcribed by hand onto one or more key forms, with the completed key forms being secured within a secure storage device after being labeled with a key number that identifies the generated key. The manual component of such a process introduces a significant risk of errors, including the possibility of transcription errors, the use of unclear handwriting, accidental use of a production key as a test key, mislabeling of the key forms, and the like.
Because of how damaging the consequences of such errors may be and because of the increasing use and reliance on cryptographic keys, there is a general need for improved methods and systems of generating and managing cryptographic keys.